package com.smile.controller;

import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.smile.commons.page.MyBatisPlusPageConverter;
import com.smile.commons.page.R;
import com.smile.model.dto.request.GetGiveAnAlarmByIdRequestDTO;
import com.smile.model.dto.request.GetGiveAnAlarmListRequestDTO;
import com.smile.model.response.response.GetGiveAnAlarmByIdResponseDTO;
import com.smile.model.response.response.GetGiveAnAlarmListResponseDTO;
import com.smile.model.request.GetGiveAnAlarmByIdRequest;
import com.smile.model.request.GetGiveAnAlarmListRequest;
import com.smile.model.response.GetGiveAnAlarmByIdResponse;
import com.smile.model.response.GetGiveAnAlarmListResponse;
import com.smile.service.GiveAnAlarmService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/giveAnAlarm")
public class GiveAnAlarmController {

    @Autowired
    private GiveAnAlarmService giveAnAlarmService;

    @PostMapping("/list")
    public R<Page<GetGiveAnAlarmListResponse>> getGiveAnAlarmList(@RequestBody GetGiveAnAlarmListRequest getGiveAnAlarmListRequest) {
        GetGiveAnAlarmListRequestDTO getGiveAnAlarmListRequestDTO = BeanUtil.copyProperties(getGiveAnAlarmListRequest, GetGiveAnAlarmListRequestDTO.class);
        Page<GetGiveAnAlarmListResponseDTO> pages = giveAnAlarmService.getGiveAnAlarmList(getGiveAnAlarmListRequestDTO);
        return R.ok(MyBatisPlusPageConverter.convertPage(pages, GetGiveAnAlarmListResponse.class));
    }

    @PostMapping("/getGiveAnAlarmById")
    public R<GetGiveAnAlarmByIdResponse> getGiveAnAlarmById(@RequestBody GetGiveAnAlarmByIdRequest getGiveAnAlarmByIdRequest) {
        GetGiveAnAlarmByIdRequestDTO getGiveAnAlarmByIdRequestDTO = BeanUtil.copyProperties(getGiveAnAlarmByIdRequest, GetGiveAnAlarmByIdRequestDTO.class);

        GetGiveAnAlarmByIdResponseDTO getGiveAnAlarmListResponseDTO = giveAnAlarmService.getGiveAnAlarmById(getGiveAnAlarmByIdRequestDTO);

        return R.ok(BeanUtil.copyProperties(getGiveAnAlarmListResponseDTO, GetGiveAnAlarmByIdResponse.class));
    }

}
